#!/usr/bin/python3
# -*- coding:UTF-8 -*-

#冰枫计算机控制系统(IM_Control)
#作者：冰枫火灵X
#许可协议：GNU LGPL v3

#冰枫计算机控制系统 是自由软件；
#您可以按照 自由软件基金会所发布的 GNU LGPL 许可协议自由地复制转载和（或者）修改它；
#LGPL 许可协议应该采用版本3或以后的任何版本。

#冰枫计算机控制系统 发布的目的是希望它能够对您有用，但我们没有任何担保；
#对于以任何用途使用它所造成的任何直接或间接后果都不承担任何责任。
#请参看GNU LGPL 许可协议中的细节。

import time
import os
import s
import timer



xxxx = str(0)

if os.access('./inf',os.F_OK):
    pass
else:
    os.mkdir('./inf')
if not os.access('./inf/text.txt',os.F_OK):
    info = open('./inf/text.txt', 'w+', encoding='UTF-16')
    info.write('首次运行，时间：'+timer.timer()+'\n')
    info.flush()
    info.close()
else:
    info = open('./inf/text.txt', 'a+', encoding='UTF-16')
    info.write('启动本程序，时间：'+timer.timer()+'\n')
    info.flush()
    info.close()

xie = open('./inf/text.txt', 'a+', encoding='UTF-16')
while(xxxx == '0'):
    t = timer.timer()
    #这里是菜单
    os.system('clear')
    xie.write(str(t)+'，打开主菜单。\n')
    xzzz = ''
    print('====================')
    print('冰枫计算机控制系统')
    print('====================')
    print('现在时间：'+t)
    print('1.立即关机')
    print('2.立即重启')
    print('3.定时关机')
    print('4.定时重启')
    print('5.SSH连接')
    print('6.查看本机IP地址')
    print('7.开启SSH服务')
    print('8.关闭SSH服务')
    print('9.查看网卡状态')
    print('0.开启Minetest服务器')
    print('c.取消关机或重启')
    print('t.查看日志')
    print('a.关于本软件')
    print('q.退出软件')
    xzzz = str(input('输入您的选择：\n'))
    
    if xzzz == '1':
        xie.write(str(timer.timer())+'，执行：立即关机并退出程序。\n')
        xie.flush()
        
        s.shutd()
        break
        
    elif xzzz == '2':
        xie.write(str(timer.timer())+'，执行：立即重启并退出程序。\n')
        xie.flush()
        
        s.restartx()
        break
#====================================================
    elif xzzz == '3':

        xz_3 = int(input('''请问，多长时间以后关机？（分钟）
请输入：'''))
        xie.write(str(timer.timer())+'，执行：定时关机，等待时间是：'+str(xz_3)+'分钟。\n')
        xie.flush()
        s.shutd_time(xz_3)
        qr = input('已经执行，请按Enter返回主菜单。')
#====================================================
    elif xzzz == '4':

        xz_4 = int(input('''请问，多长时间以后重启？（分钟）
请输入：'''))
        xie.write(str(timer.timer())+'，执行：定时重启，等待时间是：'+str(xz_4)+'分钟。\n')
        xie.flush()
        s.restartx_time(xz_4)
        qr = input('已经执行，请按Enter返回主菜单。')
#====================================================
    elif xzzz == '5':
        ssh_s = str(input('请输入域名或IP地址：'))
        ssh_p = str(input('请输入端口号（留空则为22）：'))
        if ssh_p == '':ssh_p = int('22')
        ssh_u = str(input('请输入用户名：'))
        xie.write(str(timer.timer()+'，连接SSH服务，\n'+      ssh_u+'@'+ssh_s+'，端口号：'+str(ssh_p)+'.\n'))
        xie.flush()
        os.system('clear')
        s.ssh(ssh_p,ssh_u,ssh_s)
        qr = input('已经执行，请按Enter返回主菜单。')
#====================================================
    elif xzzz == '6':
        xie.write(str(timer.timer()+'，执行：查看本机IP。\n'))
        xie.flush()
        print('=-=-=-=-=-=-=-=-=-=-=-=-=')
        s.ipip()
        qr = input('已经执行，请按Enter返回主菜单。')
#====================================================
    elif xzzz == '7':
        xie.write(str(timer.timer())+'，执行：SSH服务开启。\n')
        xie.flush()
        
        os.system('sudo service sshd start')
#====================================================
    elif xzzz == '8':
        xie.write(str(timer.timer())+'，执行：SSH服务关闭。\n')
        xie.flush()

        os.system('sudo service sshd stop')
#====================================================
    elif xzzz == '9':
        xie.write(str(timer.timer())+'，查看网卡信息。\n')
        xie.flush()
        os.system('sudo lshw -c network')
        qr = input('已经执行，请按Enter返回主菜单。')
#====================================================
    elif xzzz == '0':
        
        mt_port = int(input('定义端口号：'))
        mt_map = str(input('定义地图名：'))
        xie.write(str(timer.timer())+'''，
执行开启Minetest服务器指令，
端口号：'''+str(mt_port)+
'''\n地图名称：'''+str(mt_map)+'''\n''')
        xie.flush()
        
        os.system('setsid minetest --server --port %d --worldname %s' % (mt_port,mt_map))
#====================================================
    elif xzzz == 'c':
        xie.write(str(timer.timer())+'，取消执行关机或重启命令。\n')
        xie.flush()
        s.cancel()
        qr = input('已经执行，请按Enter返回主菜单。')
#====================================================
    elif xzzz == 'q':
        xie.write(str(timer.timer())+'，退出程序。\n\n')
        xie.flush()
        break
#====================================================
    elif xzzz == 't':
        xie.write(str(timer.timer())+'，执行：查看操作记录。\n')
        viewo = open('./inf/text.txt', 'r', encoding='UTF-16')
        view = viewo.readlines()
        viewo.close()
        print('一共有'+str(len(view))+'条操作记录，内容如下：')
        print('===================================')
        for kan in view:
            print('||'+kan)
        print('===================================')
        qr = input('已经执行，请按Enter返回主菜单。')
#====================================================
    elif xzzz == 'a':
        os.system('clear')
        print('============================================================')
        print('''
        冰枫计算机控制系统(IM_Control)
        作者：冰枫火灵X
        许可协议：GNU LGPL v3
        版本号：v0.2
        
        冰枫计算机控制系统 是自由软件；
        您可以按照 自由软件基金会所发布的 GNU LGPL 许可协议自由地复制转载和（或者）修改它；
        LGPL 许可协议应该采用版本3或以后的任何版本。
        
        冰枫计算机控制系统 发布的目的是希望它能够对您有用，但我们没有任何担保；
        对于以任何用途使用它所造成的任何直接或间接后果都不承担任何责任。
        请参看GNU LGPL 许可协议中的细节。
''')
        print('============================================================')
        xie.write(str(timer.timer())+'，查看有关于本软件的信息。\n')
        xie.flush()
        qr = input('已经执行，请按Enter返回主菜单。')
#====================================================
    else:
        xie.write(str(timer.timer())+'，输入选项错误。\n')
        print('输入选项错误。')
        qr = input('请按Enter返回主菜单。')
        continue

xie.close()
